package Question9_1; import CareerCupLibrary.AssortedMethods; public class Question { /** Merges array * @param a first array * @param b second array * @param n number of "real" elements in a * @param m number of "real" elements in b */ public static void merge(int[] a, int[] b, int n, int m) { int k = m + n - 1; // Index of last location of array b int i = n - 1; // Index of last element in array b int j = m - 1; // Index of last element in array a // Start comparing from the last element and merge a and b while (i >= 0 && j >= 0) { if (a[i] > b[j]) { a[k--] = a[i--]; } else { a[k--] = b[j--]; } } while (j >= 0) { a[k--] = b[j--]; } } public static void main(String[] args) { int[] a = {1, 3, 4, 5, 6, 8, 10, 0, 0, 0, 0, 0}; int[] b = {4, 7, 9, 10, 12}; merge(a, b, 7, 5); System.out.println(AssortedMethods.arrayToString(a)); } }